Authentication is a process in which a user establishes their identity to gain access to a resource or system. Many commonplace authentication systems use password-based authentication. These systems rely on a user's ability to recall information only known to them. Other authentication systems make use of special purpose hardware such as smart cards or use special features of hardware such as gesture recognition. Password based authentication systems inconvenience users as they require users to remember password information. On the other hand, systems using special purpose hardware also inconvenience users as the hardware has to be carried and may be easily lost or stolen. Hence there is a need for an authentication system which allows a user to authenticate themselves without compromising security or which inconveniences the user.